;; midi-constants.scm - (c) rohan drape, 2002-2005

;; Standard MIDI File Meta Event definitions.

(define MC-meta-event          #xFF)
(define MC-sequence-number     #x00)
(define MC-text-event          #x01)
(define MC-copyright-notice    #x02)
(define MC-sequence-name       #x03)
(define MC-instrument-name     #x04)
(define MC-lyric               #x05)
(define MC-marker              #x06)
(define MC-cue-point           #x07)
(define MC-channel-prefix      #x20)
(define MC-end-of-track        #x2F)
(define MC-set-tempo           #x51)
(define MC-smpte-offset        #x54)
(define MC-time-signature      #x58)
(define MC-key-signature       #x59)
(define MC-sequencer-specific  #x74)

;; MIDI Channel commands.

(define MC-note-off            #x80)
(define MC-note-on             #x90)
(define MC-aftertouch          #xA0)
(define MC-poly-aftertouch     #xA0)
(define MC-control-change      #xB0)
(define MC-program-change      #xC0)
(define MC-channel-pressure    #xD0)
(define MC-channel-aftertouch  #xD0)
(define MC-pitch-wheel         #xE0)
(define MC-system-message      #xF0)
(define MC-non-voice-message   #xF0) 

;; Seven Bit Controller names.

(define MC-bank-select         #x00)
(define MC-modulation-wheel    #x01)
(define MC-breath-controller   #x02)
(define MC-foot-pedal          #x04)
(define MC-portamento-time     #x05)
(define MC-data-entry          #x04)
(define MC-volume              #x07)
(define MC-balance             #x08)
(define MC-pan-position        #x0A)
(define MC-expression          #x0B)
(define MC-sustain-pedal       #x40)
(define MC-hold-pedal          #x40)
(define MC-portamento          #x41)
(define MC-sostenuto           #x42)
(define MC-soft-pedal          #x43)
(define MC-general-4           #x44)
(define MC-hold-2              #x45)
(define MC-general-5           #x50)
(define MC-general-6           #x51)
(define MC-general-7           #x52)
(define MC-general-8           #x53)
(define MC-tremolo-depth       #x5C)
(define MC-chorus-depth        #x5D)
(define MC-detune              #x5E)
(define MC-phaser-depth        #x5F)

;; Fourteen bit controller names.

(define MC-modulation-wheel-fine  #x21)
(define MC-breath-controller-fine #x22)
(define MC-data-entry-fine        #x26)
(define MC-volume-fine            #x27)
(define MC-balance-fine           #x28)
(define MC-pan-position-fine      #x2A)
(define MC-expression-fine        #x2B)

;; System Messages (Minor Part of Status Byte)

(define MC-system-exclusive      #x00)
(define MC-sysex                 #x00)
(define MC-mtc-quarter-frame     #x01)
(define MC-song-position-pointer #x02)
(define MC-song-select           #x03)
(define MC-tune-request          #x06)
(define MC-midi-clock            #x08)
(define MC-midi-tick             #x09)
(define MC-midi-start            #x0A)
(define MC-midi-continue         #x0B)
(define MC-midi-stop             #x0C)
(define MC-active-sense          #x0E)

;; Realtime messages

(define MC-timing   #xF8)
(define MC-start    #xFA)
(define MC-continue #xFB)
(define MC-stop     #xFC)
(define MC-reset    #xFF)

;; Manufacturer's ID number.

(define MC-Seq-Circuits        #x01) ;; Sequential Circuits Inc. 
(define MC-Big-Briar           #x02) ;; Big Briar Inc.           
(define MC-Octave              #x03) ;; Octave/Plateau           
(define MC-Moog                #x04) ;; Moog Music               
(define MC-Passport            #x05) ;; Passport Designs         
(define MC-Lexicon             #x06) ;; Lexicon                  
(define MC-Tempi               #x20) ;; Bon Tempi                
(define MC-Siel                #x21) ;; S.I.E.L.                 
(define MC-Kawai               #x41) 
(define MC-Roland              #x42)
(define MC-Korg                #x42)
(define MC-Yamaha              #x43)
